import { get, post, del, getWithPagination } from './commonApi.js'

/**
 * 专业相关API接口
 */
export const majorApi = {
  /**
   * 获取专业列表（分页查询）
   */
  getMajorList: (options = {}) => {
    return getWithPagination('/major/list', options)
  },

  /**
   * 新增专业
   * @param {Object} majorData - 专业数据
   * @param {string} majorData.name - 专业名称
   * @param {string} majorData.office - 所属教研室
   * @returns {Promise} 创建结果
   */
  addMajor: (majorData) => {
    return post('/major/add', majorData)
  },

  /**
   * 编辑专业
   * @param {Object} majorData - 专业数据
   * @param {string} majorData.id - 专业ID
   * @param {string} majorData.name - 专业名称
   * @param {string} majorData.office - 所属教研室
   * @returns {Promise} 编辑结果
   */
  updateMajorInfo: (majorData) => {
    return post('/major/update', majorData)
  },

  /**
   * 删除专业
   * @param {string} id - 专业ID
   * @returns {Promise} 删除结果
   */
  deleteMajor: (id) => {
    return del('/major/del', { id })
  },

  /**
   * 专业模糊查询
   * @param {string} name - 专业名称关键字
   * @returns {Promise} 专业列表
   */
  fuzzyQueryMajor: (name) => get('/major/fuzzyQuery', { name }),

  /**
   * 查询毕业要求
   * @param {Object} params { majorId, grade }
   * @returns {Promise}
   */
  queryGraduationRequirement: (params) => get('/major/graduation_requirement/query', params),

  /**
   * 保存毕业要求
   * @param {Object} data { majorId, grade, graduation_requirement }
   * @returns {Promise}
   */
  saveGraduationRequirement: (data) => post('/major/graduation_requirement/save', data),
}

export default majorApi
